package models

import (
	"fmt"
	"qld2devservice/utils"
)

type QldPrivateAreaMap struct {
	Id     int   `gorm:"primary_key"`
	UserId int64 `gorm:"column(user_id)"`
	AreaId int64 `gorm:"column(area_id)"`
}

func JudgeUserInArea(userID int64, areaId int64) (bool, error) {
	var count int64
	// 查询用户是否在指定区域
	err := DB.Model(&QldPrivateAreaMap{}).
		Where("user_id = ? AND area_id = ?", userID, areaId).
		Count(&count).Error

	if err != nil {
		newErr := utils.WrapError(err,
			fmt.Sprintf("JudgeUserInArea:1,数据库查询失败,userID=%d,areaId=%d", userID, areaId))
		utils.MyPrint(utils.PRINT_ERROR, newErr.Error())
		return false, newErr
	}

	// 如果count大于0表示用户在区域中
	return count > 0, nil
}

//func JudgeUserInArea1(userID int64, areaId int64) (bool, error) {
//	var qldAmountPrices []QldPrivateAreaMap
//	//条件查询
//	err := DB.Where("id = ?", id).Find(&qldAmountPrices, "private").Error
//	if err != nil {
//		newErr := utils.WrapError(err, "GetQldOutletPriceById:1,数据库获取设备价格失败,price_id="+strconv.FormatInt(id, 10))
//		utils.MyPrint(utils.PRINT_ERROR, newErr.Error())
//		return QldOutletArea{}, newErr
//	} else if len(qldAmountPrices) == 0 {
//		newErr := utils.NewError(utils.ErrorTypeStop, "GetQldOutletPriceById:2,数据库获取设备价格未获取到,id="+strconv.FormatInt(id, 10))
//		utils.MyPrint(utils.PRINT_ERROR, newErr.Error())
//		return QldOutletArea{}, newErr
//	} else if len(qldAmountPrices) > 1 {
//		newErr := utils.WrapError(err, "GetQldOutletPriceById:3,数据库获取设备价格获取到多个,"+fmt.Sprintf("%+v", qldAmountPrices))
//		utils.MyPrint(utils.PRINT_ERROR, newErr.Error())
//		return qldAmountPrices[0], newErr
//	}
//	return qldAmountPrices[0], nil
//}
